<?php

/**
 * @package    embryo
 * @subpackage libraries
 * @author     Alessandro Pelliciari
 * @version    SVN: $Id$
 */

/**
 * Singleton è l'interfaccia designata ad obbligare i singleton ad implementare in modo corretto il metodo get_instance.
 *
 */
interface Singleton {

    /**
     * Metodo che permette la gestione dell'istanza; grazie all'interfaccia i parametri sono "standardizzati"
     *
     * @param Container $container  L'unico dependency injection container dell'applicazione
     * @param array     $settings   Array di parametri per inizializzare l'oggetto
     *
     * @return Db                   L'oggetto
     *
     */
    public static function get_instance(Container $container, array $settings = array());

}